package com.aizuda.boot.modules.third.wps.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 文件修改历史表
 */
@Schema(description="文件修改历史表")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "file_history")
public class FileHistory implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "history_id", type = IdType.AUTO)
    @Schema(description="主键ID")
    private Long historyId;

    /**
     * 关联的文件ID
     */
    @TableField(value = "file_id")
    @Schema(description="关联的文件ID")
    private Long fileId;

    /**
     * 文件版本号
     */
    @TableField(value = "version")
    @Schema(description="文件版本号")
    private Integer version;

    /**
     * 文件名称
     */
    @TableField(value = "file_name")
    @Schema(description="文件名称")
    private String fileName;

    /**
     * 文件大小(单位byte)
     */
    @TableField(value = "file_size")
    @Schema(description="文件大小(单位byte)")
    private Long fileSize;

    /**
     * 文件key，用于文件下载
     */
    @TableField(value = "file_key")
    @Schema(description="文件key，用于文件下载")
    private String fileKey;

    /**
     * 创建人ID
     */
    @TableField(value = "creator_id")
    @Schema(description="创建人ID")
    private String creatorId;

    /**
     * 修改人ID
     */
    @TableField(value = "modifier_id")
    @Schema(description="修改人ID")
    private String modifierId;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @Schema(description="创建时间")
    private Date createTime;

    /**
     * 修改时间
     */
    @TableField(value = "modify_time")
    @Schema(description="修改时间")
    private Date modifyTime;

    public static final String COL_HISTORY_ID = "history_id";

    public static final String COL_FILE_ID = "file_id";

    public static final String COL_VERSION = "version";

    public static final String COL_FILE_NAME = "file_name";

    public static final String COL_FILE_SIZE = "file_size";

    public static final String COL_FILE_KEY = "file_key";

    public static final String COL_CREATOR_ID = "creator_id";

    public static final String COL_MODIFIER_ID = "modifier_id";

    public static final String COL_CREATE_TIME = "create_time";

    public static final String COL_MODIFY_TIME = "modify_time";
}
